\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\tx5860\tx6400\tx6920\tx7460\tx8000\tx8540\f3\b0\i0\ul0\fs24 music dsp array library undefined symbols \
\
Q: If I use Music Kit classes (or array processing functions) in my program, I get messages like\
\
\f2 Undefined symbols: \
.objc_class_name_Score\
\
\f3 when I try to
\b make
\b0 it.
\f2 \
\
\
\f3 A: Make sure you're loading the necessary music- or DSP-related libraries, and in the correct order. If you look at the Makefile that Interface Builder generates, you'll see a line saying something like:\
\
\f2 LIBS = -lNeXT_s -lsys_s
\f3 \
\
These two libraries are sufficient for many NeXT applications, but if you want to use the Music Kit or other DSP-related features, you'll need to specify some additional libraries. (This won't be necessary for the Sound Kit.) The procedure for specifying these libraries differs between release 1.0 and release 2.0.\
\
\b In version 2.0:
\b0 \
Select "Other libs" in the Project inspector, and click on "Add..." Add /usr/lib/libdsp_s.a and /usr/lib/libmusic_s.a. If you need to use MIDI, add /usr/lib/libmidi.a. Interface Builder will list these libraries, sorted alphabetically. Then change their order to be "libmusic_s libmidi libdsp_s" by control-dragging the library names in the Project Inspector's browser. (For array processing, use libarrayproc.a and libdsp_s.) \
\
\b In version 1.0:
\b0 \
Interface Builder doesn't support other libraries. Instead, create a file called Makefile.preamble in your source directory, consisting of the line\
In the Makefile that Interface Builder generates, you'll also notice a line saying\
\
\f2 -include Makefile.preamble
\f3 \
\
This will read in that file, supplementing the information in the first LIBS line earlier in the Makefile. (If your Makefile.preamble said "LIBS" instead of "OTHER_LIBS", it would override the earlier LIBS line.) You generally won't need all the additional libraries; determine which ones you can omit by logic or by trial and error.\
\
Note that the 2.0 "music" library unites the three separate1.0 libraries "musickit," "synthpatches," and "unitgenerators." \